// Checkbox & Radio
.checkbox,
.radio
  margin-bottom: 12px
  padding-left: 32px
  position: relative
  +transition(.25s)

  &:hover
    color: $firm

  input
    outline: none !important
    +opacity(0)

  &.checked
    .icon
      background-position: -60px -30px
      opacity: 1
      display: block\9

    .icon-to-fade
      opacity: 0
      display: none\9

  // Disabled state
  &.disabled
    color: scale-color($gray, $lightness: 62%)
    cursor: default

    .icon
      opacity: 0
      display: none\9

    .icon-to-fade
      background-position: -30px -60px
      opacity: 1
      display: block\9

    &.checked
      .icon
        background-position: 0 -90px
        opacity: 1
        display: block\9

      .icon-to-fade
        opacity: 0
        display: none\9

  // Icon
  .icon,
  .icon-to-fade
    background: url('../images/checkbox.png') -90px 0 no-repeat
    display: block
    height: 20px
    left: 0
    opacity: 1
    position: absolute
    top: -1px
    width: 20px
    +transition(opacity .1s linear)

  .icon
    opacity: 0
    top: 0
    z-index: 2
    display: none\9

// Radio
.radio
  .icon,
  .icon-to-fade
    background-image: url('../images/radio.png')

// Serving 2x images
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-moz-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 2)
  .checkbox
    .icon
      background-image: url('../images/checkbox-2x.png')
      background-size: 110px 110px

  .radio
    .icon
      background-image: url('../images/radio-2x.png')
      background-size: 110px 110px

